#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2024-present ArchR (https://github.com/archr-linux/Arch-R)

# Simple script to watch the battery capacity and
# turn the power LED to different states:
# 0-10% flashing red
# 11-20% red
# 21+% green
# <95% charging green+red
# 95+% charging green

function set_led() {
  case $1 in
    green)
      echo 25 > /sys/class/leds/green:status/brightness
      ;;
    red)
      echo 255 > /sys/class/leds/red:charging/brightness
      ;;
    off)
      echo 0 > /sys/class/leds/green:status/brightness
      echo 0 > /sys/class/leds/red:charging/brightness
      ;;
  esac
}


while true
do
  CAP=$(cat /sys/class/power_supply/battery/capacity)
  STAT=$(cat /sys/class/power_supply/battery/status)
  if [[ ${STAT} == "Discharging" ]]; then
    if (( ${CAP} <= 10 )); then
      for ctr in $(seq 1 1 5); do
        set_led off
        sleep .5
        set_led red
        sleep .5
      done
      continue
    elif (( ${CAP} <= 20 )); then
      set_led off
      set_led red
    else
      set_led off
      set_led green
    fi
  elif (( ${CAP} <= 95 )); then
    set_led red
    set_led green
  else
    set_led off
    set_led green
  fi
  sleep 15
done
